A client is computer hardware or software that operates in conjunction with a backend system. In other words, as part of its operation, the client exchanges data with, or receives data from, the backend system via a network. A client may reside in, on, etc. any combination of one or more of inter alia a wired device, a wireless device, a mobile phone, a feature phone, a smartphone, a tablet computer (such as for example an iPad™), a mobile computer, a handheld computer, a desktop computer, a laptop computer, a server computer, an in-vehicle (e.g., audio, navigation, etc.) device, an in-appliance device, a Personal Digital Assistant (PDA), a game console, a Digital Video Recorder (DVR) or Personal Video Recorder (PVR), cable system or other set-top-box, an entertainment system component such as a television set, etc. A device that includes a client is referred to herein as a client device.
Certain clients may operate in an offline state (i.e., when the client device does not have an active network connection). As such, relevant data from backend systems is synchronized with the client such that, even in an offline state, the client can perform its intended operations. Conventionally, during data synchronization, messages (e.g., packets for related information) are sent one by one to the client. In the case of a large number of small messages, one network connection might be opened per message per user. In a typical mobile landscape with thousands of mobile users, a large number of connections create a load on the network that reduces the efficiency of the backend system and increase the overall bandwidth consumed and response time for the synchronization.